# Astra DB

> [DataStax Astra DB](https://docs.datastax.com/en/astra/home/astra.html) 是一个基于 `Apache Cassandra®` 构建的无服务器向量数据库，通过易于使用的 JSON API 方便地提供。

查看由 DataStax 提供的[教程](https://docs.datastax.com/en/astra/astra-db-vector/tutorials/chatbot.html)。

## 安装和设置

安装以下 Python 包：

```bash
pip install "langchain-astradb>=0.1.0"
```

获取[连接密钥](https://docs.datastax.com/en/astra/astra-db-vector/get-started/quickstart.html)。

设置以下环境变量：

```python
ASTRA_DB_APPLICATION_TOKEN="TOKEN"
ASTRA_DB_API_ENDPOINT="API_ENDPOINT"
```

## 向量存储

```python
from langchain_astradb import AstraDBVectorStore
vector_store = AstraDBVectorStore(
    embedding=my_embedding,
    collection_name="my_store",
    api_endpoint=ASTRA_DB_API_ENDPOINT,
    token=ASTRA_DB_APPLICATION_TOKEN,
)
```

在[示例笔记本](/docs/integrations/vectorstores/astradb)中了解更多信息。

查看由 DataStax 提供的[示例](https://docs.datastax.com/en/astra/astra-db-vector/integrations/langchain.html)。

## 聊天消息历史记录

```python
from langchain_astradb import AstraDBChatMessageHistory
message_history = AstraDBChatMessageHistory(
    session_id="test-session",
    api_endpoint=ASTRA_DB_API_ENDPOINT,
    token=ASTRA_DB_APPLICATION_TOKEN,
)
```

在[使用示例](/docs/integrations/memory/astradb_chat_message_history#example)中查看更多信息。

## LLM 缓存

```python
from langchain.globals import set_llm_cache
from langchain_astradb import AstraDBCache
set_llm_cache(AstraDBCache(
    api_endpoint=ASTRA_DB_API_ENDPOINT,
    token=ASTRA_DB_APPLICATION_TOKEN,
))
```

在[示例笔记本](/docs/integrations/llms/llm_caching#astra-db-caches)中了解更多信息（滚动到 Astra DB 部分）。

## 语义 LLM 缓存

```python
from langchain.globals import set_llm_cache
from langchain_astradb import AstraDBSemanticCache
set_llm_cache(AstraDBSemanticCache(
    embedding=my_embedding,
    api_endpoint=ASTRA_DB_API_ENDPOINT,
    token=ASTRA_DB_APPLICATION_TOKEN,
))
```

在[示例笔记本](/docs/integrations/llms/llm_caching#astra-db-caches)中了解更多信息（滚动到相应部分）。

在[示例笔记本](/docs/integrations/memory/astradb_chat_message_history)中了解更多信息。

## 文档加载器

```python
from langchain_astradb import AstraDBLoader
loader = AstraDBLoader(
    collection_name="my_collection",
    api_endpoint=ASTRA_DB_API_ENDPOINT,
    token=ASTRA_DB_APPLICATION_TOKEN,
)
```

在[示例笔记本](/docs/integrations/document_loaders/astradb)中了解更多信息。

## 自查询检索器

```python
from langchain_astradb import AstraDBVectorStore
from langchain.retrievers.self_query.base import SelfQueryRetriever
vector_store = AstraDBVectorStore(
    embedding=my_embedding,
    collection_name="my_store",
    api_endpoint=ASTRA_DB_API_ENDPOINT,
    token=ASTRA_DB_APPLICATION_TOKEN,
)
retriever = SelfQueryRetriever.from_llm(
    my_llm,
    vector_store,
    document_content_description,
    metadata_field_info
)
```

在[示例笔记本](/docs/integrations/retrievers/self_query/astradb)中了解更多信息。

## 存储

```python
from langchain_astradb import AstraDBStore
store = AstraDBStore(
    collection_name="my_kv_store",
    api_endpoint=ASTRA_DB_API_ENDPOINT,
    token=ASTRA_DB_APPLICATION_TOKEN,
)
```

在[示例笔记本](/docs/integrations/stores/astradb#astradbstore)中了解更多信息。

## 字节存储

```python
from langchain_astradb import AstraDBByteStore
store = AstraDBByteStore(
    collection_name="my_kv_store",
    api_endpoint=ASTRA_DB_API_ENDPOINT,
    token=ASTRA_DB_APPLICATION_TOKEN,
)
```

在[示例笔记本](/docs/integrations/stores/astradb#astradbbytestore)中了解更多信息。